package com.cleaningcloud.cld.utils;

public class GeoUtil {
    /**
     * 判断坐标之间的距离
     * （高德地图Android库的反编译源码）
     *
     * @param longitude 待判断经度
     * @param latitude  待判断纬度
     * @param centerLon 中心点经度
     * @param centerLat 中心点纬度
     * @return
     */
    public static Double calculateLineDistance(double longitude, double latitude, double centerLon, double centerLat) {
        if (longitude == 0 || latitude == 0 || centerLat == 0 || centerLon == 0) {
            return -1.0;
        }
        longitude *= 0.01745329251994329;
        latitude *= 0.01745329251994329;
        centerLon *= 0.01745329251994329;
        centerLat *= 0.01745329251994329;
        double var10 = Math.sin(longitude);
        double var12 = Math.sin(latitude);
        double var14 = Math.cos(longitude);
        double var16 = Math.cos(latitude);
        double var18 = Math.sin(centerLon);
        double var20 = Math.sin(centerLat);
        double var22 = Math.cos(centerLon);
        double var24 = Math.cos(centerLat);
        double[] var28 = new double[3];
        double[] var29 = new double[3];
        var28[0] = var16 * var14;
        var28[1] = var16 * var10;
        var28[2] = var12;
        var29[0] = var24 * var22;
        var29[1] = var24 * var18;
        var29[2] = var20;
        return Math.asin(Math.sqrt((var28[0] - var29[0]) * (var28[0] - var29[0]) + (var28[1] - var29[1]) * (var28[1] - var29[1]) + (var28[2] - var29[2]) * (var28[2] - var29[2])) / 2.0) * 1.27420015798544E7;
    }


}

